package com.kai.service.enums;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.experimental.FieldDefaults;

@Getter
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
public enum ResultCodeEnum {

    SUCCESS(20000, "ok"),
    PERMISSION_DENIED(40000, "没有权限"),
    LOGIN_FAILURE_INTERNAL_ERROR(40001, "登陆失败，内部异常"),
    LOGIN_FAILURE(40002, "登陆失败"),
    BASE_ERROR(50000, "当前系统异常，请稍后再试"),
    PARAMETER_ERROR(10001, "参数错误或数据异常"),
    INCORRECT_VERIFICATION_CODE(10002, "验证码不正确"),
    NO_LOGIN(10003, "未登录"),
    TOKEN_ERROR(10004, "token异常"),
    TOKEN_EXPIRED(10005, "token过期"),

    // ==========用户==========
    USER_NOT_EXIST(10100, "用户不存在或禁用"),
    USERNAME_PASSWORD_ERROR(10101, "账号或密码错误"),
    USER_EXISTED(10102, "用户已存在"),
    INCORRECT_ACCOUNT_FORMAT(10103, "账号格式不正确"),

    // ==========角色==========
    ROLE_EXISTED(10200, "角色已存在"),
    ROLE_NOT_EXIST(10201, "角色不存在"),

    // ==========资源==========
    RESOURCE_NOT_EXIST(10300, "资源不存在"),

    // ==========专栏==========
    COLUMN_NOT_EXIST(10400, "专栏不存在"),
    COLUMN_EXISTED(10401, "专栏已存在"),

    // ==========文章==========
    ARTICLE_NOT_EXIST(10500, "文章不存在"),
    COMMENT_NOT_EXIST(10501, "评论不存在"),

    // ==========问题==========
    PROBLEM_NOT_EXIST(10600, "问题不存在"),

    // ==========留言==========
    MESSAGE_NOT_EXIST(10700, "留言不存在"),

    ;


    int code;

    String message;
}
